
package co.saep.vista;

import co.saep.logica.LogicaTipoPracticaLocal;
import co.edu.senaclem.modelo.Tipopractica;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.component.inputtextarea.InputTextarea;
import org.primefaces.event.SelectEvent;


@ManagedBean (name="tipoPracticaVista")
@RequestScoped
public class tipoPracticaVista {

    @EJB
    LogicaTipoPracticaLocal logicaTipoPractica;
    
    private InputText txtCodigoTipoPractica;
    private InputText txtNombreTipoPractica;
    private InputTextarea txtDescripcionTipoPractica;
    private CommandButton btnRegistrar;
    private CommandButton btnModificar;
    private CommandButton btnEliminar;
    private CommandButton btnLimpiar;
    private Tipopractica selectTipoPractica;
    private List<Tipopractica> listaTipoPractica;
    
    public tipoPracticaVista() {    
    }

    public InputText getTxtCodigoTipoPractica() {
        return txtCodigoTipoPractica;
    }

    public void setTxtCodigoTipoPractica(InputText txtCodigoTipoPractica) {
        this.txtCodigoTipoPractica = txtCodigoTipoPractica;
    }

    public InputText getTxtNombreTipoPractica() {
        return txtNombreTipoPractica;
    }

    public void setTxtNombreTipoPractica(InputText txtNombreTipoPractica) {
        this.txtNombreTipoPractica = txtNombreTipoPractica;
    }

    public InputTextarea getTxtDescripcionTipoPractica() {
        return txtDescripcionTipoPractica;
    }

    public void setTxtDescripcionTipoPractica(InputTextarea txtDescripcionTipoPractica) {
        this.txtDescripcionTipoPractica = txtDescripcionTipoPractica;
    }

    public CommandButton getBtnRegistrar() {
        return btnRegistrar;
    }

    public void setBtnRegistrar(CommandButton btnRegistrar) {
        this.btnRegistrar = btnRegistrar;
    }

    public CommandButton getBtnModificar() {
        return btnModificar;
    }

    public void setBtnModificar(CommandButton btnModificar) {
        this.btnModificar = btnModificar;
    }

    public CommandButton getBtnEliminar() {
        return btnEliminar;
    }

    public void setBtnEliminar(CommandButton btnEliminar) {
        this.btnEliminar = btnEliminar;
    }

    public CommandButton getBtnLimpiar() {
        return btnLimpiar;
    }

    public void setBtnLimpiar(CommandButton btnLimpiar) {
        this.btnLimpiar = btnLimpiar;
    }

    public Tipopractica getSelectTipoPractica() {
        return selectTipoPractica;
    }

    public void setSelectTipoPractica(Tipopractica selectTipoPractica) {
        this.selectTipoPractica = selectTipoPractica;
    }

    public List<Tipopractica> getListaTipoPractica() {
       
        if(listaTipoPractica==null)
        {
            try {
                listaTipoPractica=logicaTipoPractica.consultarTipoPractica();
            } catch (Exception ex) {
                Logger.getLogger(tipoPracticaVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        return listaTipoPractica;
    }

    public void setListaTipoPractica(List<Tipopractica> listaTipoPractica) {
        this.listaTipoPractica = listaTipoPractica;
    }
    
    
    public void funcion_limpiar()
    {
        txtCodigoTipoPractica.setValue("");
        txtNombreTipoPractica.setValue("");
        txtDescripcionTipoPractica.setValue("");
        txtCodigoTipoPractica.setDisabled(false);
        btnRegistrar.setDisabled(false);
        btnModificar.setDisabled(true);
        btnEliminar.setDisabled(true);                     
    }
    
    public void funcion_registrar()
    {
        try {
        Tipopractica tp = new Tipopractica();
        tp.setCodigotipopractica(Integer.parseInt(txtCodigoTipoPractica.getValue().toString()));
        tp.setNombretipopractica(txtNombreTipoPractica.getValue().toString());
        tp.setDescripciontipopractica(txtDescripcionTipoPractica.getValue().toString());
        
            logicaTipoPractica.registrarTipoPractica(tp);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "El Tipo de Practica se registro con exito"));
            
        } catch (Exception ex) {
            Logger.getLogger(tipoPracticaVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", ex.getMessage()));
        }
        listaTipoPractica=null;
        funcion_limpiar();
    }
    public void funcion_modificar()
    {
        try {
        Tipopractica tp = new Tipopractica();
        tp.setCodigotipopractica(Integer.parseInt(txtCodigoTipoPractica.getValue().toString()));
        tp.setNombretipopractica(txtNombreTipoPractica.getValue().toString());
        tp.setDescripciontipopractica(txtDescripcionTipoPractica.getValue().toString());
        
            logicaTipoPractica.modificarTipoPractica(tp);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "El Tipo de Practica se Modificó con exito"));
            
        } catch (Exception ex) {
            Logger.getLogger(tipoPracticaVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", ex.getMessage()));
        }
        listaTipoPractica=null;
        funcion_limpiar();
    }
    
    public void funcion_eliminar() 
    {
        try {
            Tipopractica tp = new Tipopractica();
            tp.setCodigotipopractica(Integer.parseInt(txtCodigoTipoPractica.getValue().toString()));
            logicaTipoPractica.eliminarTipoPractica(tp);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "La cuenta se Eliminó con exito"));
        } catch (Exception ex) {
            Logger.getLogger(Tipopractica.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", ex.getMessage()));
        }
        listaTipoPractica=null;
        funcion_limpiar();
        
    }
    public void funcion_seleccionar(SelectEvent event)
    {
        Tipopractica tipoPracticaSeleccionada = (Tipopractica) event.getObject();
        txtCodigoTipoPractica.setValue(tipoPracticaSeleccionada.getCodigotipopractica());
        txtNombreTipoPractica.setValue(tipoPracticaSeleccionada.getNombretipopractica());
        txtDescripcionTipoPractica.setValue(tipoPracticaSeleccionada.getDescripciontipopractica());
        txtCodigoTipoPractica.setDisabled(true);
        btnRegistrar.setDisabled(true);
        btnModificar.setDisabled(false);
        btnEliminar.setDisabled(false);
    }
}
